home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 726-750 / 732 / mpe / mpecdel.mod < prev    next >
Text File  |  1995-03-18  |  3KB  |  116 lines

  1. (*#-- BEGIN AutoRevision header, please do NOT edit!
  2. *
  3. *   Program         :   MPECDel.mod
  4. *   Copyright       :   1992 ©, By DigiSoft
  5. *   Author          :   Marcel Timmermans
  6. *   Address         :   Holthuizerdreef 13, 6852 JH, HUISSEN, HOLLAND
  7. *   Creation Date   :   02-09-1992
  8. *   Current version :   1.0
  9. *   Translator      :   M2Amiga V4.0d
  10. *
  11. *   REVISION HISTORY
  12. *
  13. *   Date          Version         Comment
  14. *   ---------     -------         ------------------------------------------
  15. *   02-09-1992     1.0            First Release
  16. *
  17. *-- END AutoRevision header --*)
  18.  
  19. (* This program is public domain, so you may do with it whatever you want *)
  20.  
  21. MODULE MPECDel;
  22.  
  23. (*$ LargeVars:=FALSE
  24.     StackChk:=FALSE
  25.     OverflowChk:=FALSE
  26.     RangeChk:=TRUE
  27.     ReturnChk:=TRUE
  28.     NilChk:=FALSE
  29.     LongAlign:=FALSE
  30.     Volatile:=FALSE
  31.     StackParms:=FALSE
  32.  *)
  33.  
  34. FROM SYSTEM       IMPORT ADR,ADDRESS,SHIFT,TAG;
  35. IMPORT dl:DosL,dd:DosD,s:String,A:Arts,str:StrSupport,a:Arguments,t:Terminal,
  36.        el:ExecL,ed:ExecD;
  37.  
  38.  
  39.  
  40. CONST AutoVersion = '1.0';
  41.       DeleteTxt   = 'MPE.CFG';
  42.       Info        = '\033[33mMPECDel\033[31m, V'+AutoVersion+', 02-09-92, © DigiSoft\n' +
  43.                     'This program deletes all the MPE configuration files in the given directory\nand sub directories.\n' +
  44.                 'Usage: MPECDel <directory>\n';
  45. TYPE
  46.   String    = ARRAY[0..255] OF CHAR;
  47.   StringPtr = POINTER TO String;
  48.  
  49. VAR
  50.   numArgs,arg,len: INTEGER;
  51.   path : String;
  52.  
  53.  
  54. PROCEDURE Searching(Drive:ARRAY OF CHAR;depth:INTEGER;target:ARRAY OF CHAR);
  55. VAR info:dd.FileInfoBlockPtr;
  56.     lock:dd.FileLockPtr;
  57.     temp:ARRAY[0..200] OF CHAR;
  58.     ch:ARRAY[0..1] OF CHAR;
  59.     len:INTEGER;
  60. BEGIN
  61.  lock:=dl.Lock(ADR(Drive),NIL);
  62.  IF lock=NIL THEN RETURN END;
  63.  
  64.  info:=el.AllocMem(SIZE(info^),ed.MemReqSet{ed.public});
  65.  IF info=NIL THEN
  66.   dl.UnLock(lock);
  67.   RETURN;
  68.  END;
  69.  
  70.  IF (dl.Examine(lock,info)=TRUE) THEN
  71.   WHILE dl.ExNext(lock,info)#FALSE DO
  72.    s.Copy(temp,Drive);
  73.    IF (depth > 1) THEN s.ConcatChar(temp,"/"); END;
  74.     s.Concat(temp,info^.fileName);
  75.     IF str.StrCmp(ADR(info^.fileName),ADR(DeleteTxt))=0 THEN
  76.      t.WriteString("\033[33mFound\033[31m ");
  77.      t.WriteString(temp);
  78.      t.WriteString("\nDelete (Y/N) ");
  79.      t.ReadLn(ch,len);
  80.      CASE ch[0] OF
  81.       "Y","y" : IF dl.DeleteFile(ADR(temp)) THEN t.WriteString("File deleted\n");
  82.               ELSE t.WriteString("\033[33mError Deleting\033[31m "); END |
  83.      ELSE
  84.       t.WriteString("File not deleted\n");
  85.      END;
  86.     END;
  87.     IF (info^.dirEntryType > 0) THEN Searching(temp,depth+1,DeleteTxt); END;
  88.   END;
  89.  END;
  90.  dl.UnLock(lock);
  91.  el.FreeMem(info,SIZE(info^));
  92. END Searching;
  93.  
  94. BEGIN
  95.  numArgs := a.NumArgs();
  96.  path := "";
  97.  IF numArgs=1 THEN
  98.   a.GetArg(1,path,len);
  99.   IF path[0]="?" THEN
  100.     t.WriteString(Info);
  101.   ELSIF path[s.Length(path)-1]=':' THEN
  102.      t.WriteString("Searching ... \n");
  103.      Searching(path,1,DeleteTxt);
  104.      t.WriteString("\033[33mEverything is done.\033[31m\n");
  105.    ELSE
  106.      t.WriteString("Searching ... \n");
  107.      Searching(path,2,DeleteTxt);
  108.      t.WriteString("\033[33mEverything is done.\033[31m\n");
  109.    END;
  110.  ELSE
  111.   t.WriteString(Info);
  112.  END;
  113. CLOSE
  114.  
  115. END MPECDel.
  116.